discrete math proof practice problems